Advanced text input methods such as handwriting, speech, and Input Method Editors (IMEs) are often limited to leveraging language rules and a language dictionary as the primary forms of context used to achieve accuracy in recognition of text input. Contextual information such as unigrams or n-grams has been traditionally provided as part of the language model to such input methods to increase accuracy in recognition of natural language input. Unfortunately, some of the most common fields of applications and of forms expect input that may not conform to the language rules of a specific language and may not even conform to the vocabulary of a specific language. For example, an email field may expect an email address as input. Most, if not all, email addresses do not conform to the language rules or vocabulary of a specific language. English language rules which require, for example, a space between words do not apply to an email address. Similarly, a field may expect a Uniform Resource Locator (URL), which also may not conform to the language rules or vocabulary of a specific language. As a result, such input methods may be severely limited in their ability to accurately recognize input for these types of fields. Users consequently may have an unsatisfactory experience when using such input methods that result in poor recognition accuracy for these types of fields.
Furthermore, in applications where the vocabulary may be restricted, such as in command and control applications, the context has been traditionally constrained by restricting the dictionary of the language to fewer words. However, this technique has been limited in its use by a single application for a specific input method. Multiple input methods could not use this technique for constraining context without implementing the technique for each separate input method.
What is needed is a way for advanced text input methods to be made aware of the type of text expected to be received as input so that higher accuracy in recognition of text input may be achieved. Additionally, such a system should allow any input method to use the context provided by an application so that the user may switch between input methods to input the information for the field.